JBoss Community Archive (Read Only)

RHQ 4.7

Design - Search Improvements

Purpose

At large enough scales, no one person will be able to know what (or even where) everything is any more. Employees start to have specialized roles. Each only cares about a small part of what's in the entire data center, etc. So, I find having a robust search strategy of the utmost importance. Below are some ideas for how to expand / improve search.

Saved Searches

Continue to refine the concept of saved searches, what types of ownership (user/role/global) we want, policies for sharing saved searches, etc - this will allow faster navigation once the customer uses the application for a while and starts to amass a good number of saved searches that will allow him to successfully carry out his administrative functions.

Continue to refine how results are displayed as well as flesh out a generic way of annotating results with additional data based on the search expression entered, i.e. "alert[time]='last 4 hours' and alert[severity]=high" would add a new column to the resource results that display the count of high-severity alerts for the last 4 hours for each result record.

SearchGroups

Beyond basic search execution, there needs to be a link between the core search functionality and the concept of groups. SearchGroups are thus the merger of (Dyna)Search with DynaGroups.

A SearchGroup is a new type of group that allows you to define it using a search expression instead of a hard-coded membership. In other words, you no longer need to create a group definition, which then creates a single dynagroup for you; you would add the search expression to the SearchGroup itself, and that SearchGroup's membership will be directly (dynamically) maintained.

SearchGroups, however, will still allow the "groupBy" terms. If there are any of these terms in the SearchGroup, then the SearchGroup will create children SearchGroups, each of which have their own set of searchTerms (each child SearchGroup gets its search expression calculated by using one of the unique permutations of all specified "groupBy" elements in the parent's SearchGroup).

Search Result Actions

Once we have SearchGroups, we can add the ability to turn a search into a SearchGroup on-the-fly. This will allow users to browse via search, and then once they find something they like they can create a group out of it to easily performance group-wise things such as operations, configuration, etc.

Along similar lines, I'd like to propose that we have an easier way for working with search results. Perhaps I go to the inventory browser, perform a search, and want to uninventory all resources I find. We should come up with a generic strategy that allows the entire result set (not just the page being viewed) to have some action performed against it. This might be achievable via temporary/short-lived SearchGroups or even by directly iterating over the results and apply the action to each in turn.

Navigation via Search

Basically, the way the the search suggestions work is that they will offer results that either match your saved searches, the complex/advanced query terms, or the simple/text query terms. In other words, suggestions are all about helping the user to automatically complete their search expression in the search bar. Once the user is happy with the result, he/she hits enter (or clicks OK), and the table of results is appropriately filtered.

However, one thing to consider is whether the search suggestions drop-down component should offer the results directly. In other words, the stuff that would normally be filtered in the result table, are now suggested to you in the pop-up as you type. Here, you can select a "result element" from the search suggestions drop-down and it will navigate the user to the "detailed view" for that element.

Below are some areas of concern about adding this type of "result suggestion":

Screen Real Estate

We're already suggesting lots of different types of results, so adding another type of suggest will require more real estate. However, if we wanted to, we could always offer more suggestions, but then make the suggestion pop-up scrollable. Are there other strategies for conserving real estate to content with this issue?

Scaling

In small enterprises, it's likely you can type "abc" and find a small set of resources (1-3 of them) that match that filter. As a result, it's a nice feature to be able to immediately navigate to one of those resources from the search bar via suggestions. However, how normal this will be across large organizations with thousands of resources that could be very similarly (or identically) named across boxes? It might be the case that searching for "xyz" yield 30 identically named resources, but which exist on different platforms.

Granted, resource disambiguation could / will help here, just as it would in the regular search results pane.

UI Data Model

All suggestions today are simple strings, whether they be the name of the saved search, the name of the resource, or a suggestion for the completion of a complex search term. Incorporating the semantics of search results in the suggestion drop-down will either necessitate us being able to provide a mixed model (some suggestions are simple, others are structured/column-wise data). Alternatively, we could somehow extract the most important information from the structured/column-wise data, and present that as a simple string.

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-12 14:01:53 UTC, last content change 2010-08-04 02:04:37 UTC.